<?php

/**
 * @author Rizky Tahara Shita
 * @website http://tahara.web.id
 * @email rizky.tahara@gmail.com
 * @copyright b'IT Cyber Solution
 */

require_once(APPPATH.'controllers/admin/applications.php');
class Inbox extends Applications
{
	public function __construct()
	{
		parent::__construct();

		/**
		 * @description check the session variables
		 */
		$this->M_login->session_check();

		/**
		 * @description the URL
		 */
		$this->bz_segment['END'] = 5;
		$this->bz_segment['URL'] = $this->M_functions->segment_create();
		$this->bz_segment['SITE_URL'] = site_url($this->bz_segment['URL']);

		/**
		 * @description access rights
		 */
		$this->access_rights = $this->M_menu->valid_check('db_default', $this->session->userdata('session_user_id'));
		$this->access_rights = array
			(
				'ADD' => in_array('add', $this->access_rights) ? TRUE : FALSE
				, 'EDIT' => in_array('edit', $this->access_rights) ? TRUE : FALSE
				, 'DELETE' => FALSE
			);

		/**
		 * @description initialize variables for database
		 */
		$this->tbl_attr = array
			(
				'TABLE' => array
					(
						'NAME' => 'hris_attendance_request'
						, 'NAME_ALIAS' => 'hris_attendance_request a'
						, 'PRIMARY' => array
							(
								'SHOW' => FALSE
								, 'DATA' => array('id')
							)
					)
				, 'VIEW' => array
					(
						'HEADING' => array
							(
								$this->lang->line('hris_type')
								, $this->lang->line('hris_number')
								, $this->lang->line('hris_attendance_request') . ' ' . $this->lang->line('hris_date')
								, $this->lang->line('hris_from')
								, $this->lang->line('hris_to')
								, $this->lang->line('hris_duration')
								, $this->lang->line('hris_attendance_approval_approver') . ' ' . $this->lang->line('hris_status')
								, $this->lang->line('hris_attendance_approval_approver') . ' ' . $this->lang->line('hris_date')
								, $this->lang->line('hris_attendance_approval_approver') . ' ' . $this->lang->line('hris_reason')
							)
						, 'FIELDS' => '@_id := id as id, `fn_hris_master_data_get_name`(37, request_type__id, "'.$this->session->userdata('session_user_language_id').'") as request_type_name, number, date'
								. ', date_start, date_end, duration'
								. ', @_request_approver_status_id := (select request_approval_status__id from bz_hris_attendance_request_approved where request__id = @_id and data__id = "'.$this->session->userdata('session_user_id').'") as hidden__request_approver_status_id'
								. ', `fn_hris_master_data_get_name`(44, @_request_approver_status_id, "'.$this->session->userdata('session_user_language_id').'") as request_approver_status_name'
								. ', (select `date` from bz_hris_attendance_request_approved where request__id = @_id and data__id = "'.$this->session->userdata('session_user_id').'") as request_approver_date'
								. ', (select reason from bz_hris_attendance_request_approved where request__id = @_id and data__id = "'.$this->session->userdata('session_user_id').'") as request_approver_reason'
						, 'FIELDS_EDIT' => 'number'
						, 'FIELDS_ORDER' => 'hidden__request_approver_status_id, request_type__id, date desc'
						, 'TOT_ROW' => $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_VIEW_TOT_ROW']
						, 'TABLE' => array
							(
								'WHERE' => 'id in (select request__id from bz_hris_attendance_request_approved where data__id = "'.$this->session->userdata('session_user_id').'")'
							)
					)
				, 'FORM' => array
					(
						'FIELDS' => '@_id := id as id'
							. ', (select request_approval_detail__id from bz_hris_attendance_request_approved b where a.id = b.request__id and data__id = "'.$this->session->userdata('session_user_id').'") as request_approval_detail_id'
							. ', request_type__id'
							. ', `fn_hris_master_data_get_name`(37, request_type__id, "'.$this->session->userdata('session_user_language_id').'") as request_type_name'
							. ', (select name from bz_hris_attendance_leave_management where id = leave_management__id) as leave_management_name'
							. ', concat(`fn_hris_employee_name_get`(data__id), " - ", `fn_hris_employee_number_current`(data__id)) as employee_name, number, date'
							. ', date_start, (select ifnull(time_start, "00:00") from bz_hris_attendance_request_permit where request__id = @_id) as time_start'
							. ', date_end, (select ifnull(time_end, "00:00") from bz_hris_attendance_request_permit where request__id = @_id) as time_end'
							. ', reason'
							. ', (select ifnull(responsibility, "") from bz_hris_attendance_request_leave where request__id = @_id) as responsibility'
							. ', (select ifnull(contact_information, "") from bz_hris_attendance_request_leave where request__id = @_id) as contact_information'
							. ', (select ifnull(case hospitalization_status when "Yes" then "'.$this->lang->line('hris_yes').'" else "'.$this->lang->line('hris_no').'" end, "") from bz_hris_attendance_request_sick where request__id = @_id) as hospitalization_status'
							. ', (select ifnull(case letter_status when "Yes" then "'.$this->lang->line('hris_yes').'" else "'.$this->lang->line('hris_no').'" end, "") from bz_hris_attendance_request_sick where request__id = @_id) as letter_status'
							. ', (select case letter_date when "0000-00-00" then "" else letter_date end from bz_hris_attendance_request_sick where request__id = @_id) as letter_date'
							. ', `fn_hris_master_data_get_name`(15, (select ifnull(medical_disease__id, "") from bz_hris_attendance_request_sick where request__id = @_id), "'.$this->session->userdata('session_user_language_id').'") as medical_disease_name'
							. ', (select request_approval_status__id from bz_hris_attendance_request_approved b where a.id = b.request__id and data__id = "'.$this->session->userdata('session_user_id').'") as request_approver_status_name'
							. ', (select reason from bz_hris_attendance_request_approved b where a.id = b.request__id and data__id = "'.$this->session->userdata('session_user_id').'") as request_approver_reason'
						, 'FIELDS_ORDER' => ''
						, 'COLUMN' => 4
						, 'COLUMN_JOIN' => 2
					)
				, 'URL' => array
					(
						'FORM' => $this->bz_segment['SITE_URL'].'/form'
						, 'VIEW' => $this->bz_segment['SITE_URL'].'/view'
					)
			);

		/**
		 * @description template lite variables
		 */
		$this->bz_tlite_var['CACHE_PATH'] = $this->bz_tlite_var['SESSION']['USER_ID'].'|'.str_replace('/', '|', $this->bz_segment['URL']);
		$this->bz_tlite_var['CACHE'] = array
			(
				'PUBLIC' => $this->bz_tlite_var['SESSION']['USER_ID']
				, 'PRIVATE' => array
					(
						'GLOBAL' => $this->bz_tlite_var['CACHE_PATH']
						, 'VIEW' => $this->bz_tlite_var['CACHE_PATH'].'|view'
						, 'FORM' => $this->bz_tlite_var['CACHE_PATH'].'|form'
					)
			);
	}


	/**
	 * @function index()
	 * @description main controller
	 */
	public function index()
	{
		/**
		 * @description choose which controller to show
		 */
		redirect($this->tbl_attr['URL']['VIEW']);
	}


	/**
	 * @function view()
	 * @description view table list of data
	 */
	public function view($prm_page = '', $prm_search_term = '')
	{
		if ($this->web_data['BISKITZ']['HEADER']['BROWSER_SUPPORTED'] == '')
		{
			/**
			 * @description load the models
			 */
			$this->load->model('M_viewlist');
			$this->load->library('encrypt');


			/**
			 * @description process the searching
			 */
			if (trim($this->input->post('txt_search')) != '')
			{
				$search_string = $this->encrypt->encode($this->input->post('txt_search'));
				redirect($this->bz_segment['SITE_URL'].'/view/0/'.$search_string);
			}
			if (trim($prm_search_term) != '')
			{
				$prm_search_term = strtolower($this->encrypt->decode($prm_search_term));
				$search_term = array
					(
						'lower(number)' => $prm_search_term
						, 'lower(date)' => $prm_search_term
						, 'lower(date_start)' => $prm_search_term
						, 'lower(date_end)' => $prm_search_term
						, 'lower(duration)' => $prm_search_term
						, 'lower(approval_date)' => $prm_search_term
					);
			}
			else
			{
				$search_term = '';
			}


			/**
			 * @description if there isn't any css/ajax cache, build it! else show cache!
			 */
			if ( ! $this->bz_tlite->is_cached($this->bz_tlite_var['NAMES']['CSS'], $this->bz_tlite_var['CACHE']['PRIVATE']['VIEW']))
			{
				/**
				 * @section begin page init
				 */
					/**
					 * @description show the menu
					 */
					$menu = $this->M_menu->shows();
					$this->web_data['JAVASCRIPT_MENU'] = $menu['JAVASCRIPT_MENU'];
					$this->web_data['PAGE']['MENU'] = $menu['PAGE']['MENU'];

					/**
					 * @description init the css and the ajax needed
					 */
					$css_files = array
						(
							array('layout' => 'screen')
							, array('tipsy/tipsy' => 'screen')
							, array('form_icon_bar' => 'screen')
							, array('nanoscroller/nanoscroller' => ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error') ? 'screen' : NULL)
							, array('shortcut_bar' => ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error') ? 'screen' : NULL)
							, array('ddm/multi-ddm' => 'screen')
						);
					$js_files = array
						(
							'js/plugins/ddm' => array('jquery.multi-ddm.pack')
							, 'js/plugins/nanoscroller' => ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error') ? array('jquery.nanoscroller.min', 'overthrow.min') : NULL
							, 'js/plugins/tipsy' => array('jquery.tipsy.pack')
							, $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_JS_FUNCTIONS_PATH'] => array('common', 'form', 'error')
							, 'themes/'.$this->web_data['BISKITZ']['SETTINGS']['BISKITZ_THEME_ADMIN'].'/'.$this->web_data['BISKITZ']['SETTINGS']['BISKITZ_JS_PATH'] => array('common')
						);
				/**
				 * @section end page init
				 */


				/**
				 * @section begin generate template variables
				 */
					/**
					 * @description css and ajax
					 */
					$this->web_data['PAGE']['CSS_FILES'] = $this->M_template->css_generate($css_files, $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_THEME_ADMIN']);
					$this->web_data['PAGE']['JAVASCRIPT_FILES'] = $this->M_template->js_generate($js_files);

					/**
					 * @description initialize the additional javascript
					 */
					if ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error')
					{
						$this->web_data['JAVASCRIPT'] .= '
							<script>
								$(function()
								{
									$(".nano").nanoScroller({preventPageScrolling: true});
								});
							</script>
							';
					}

					/**
					 * @description menu descriptions
					 */
					$this->web_data['PAGE']['DETAIL'] = $this->M_menu->detail();
				/**
				 * @section end generate template variables
				 */
			}


			/**
			 * @section begin table view init
			 */
				/**
				 * @description init the pagination
				 */
				$paging_init = array
					(
						'base_url' => $this->tbl_attr['URL']['VIEW']
						, 'total_rows' => $this->M_database->total_rows
							(
								'db_default'
								, $this->tbl_attr['TABLE']['NAME']
								, $this->tbl_attr['VIEW']['TABLE']['WHERE']
								, FALSE
								, $search_term
							)
						, 'per_page' => $this->tbl_attr['VIEW']['TOT_ROW']
						, 'uri_segment' => $this->bz_segment['END'] + 2
					);

				$this->load->library(array('pagination'));
				$this->pagination->initialize($paging_init);
				$paging_link = $this->pagination->my_paging_links(TRUE, $this->bz_segment['END'] + 3);

				/**
				 * @description init the command button
				 */
				$this->load->model('admin/M_command_bar');
				$view_list_commands = $this->M_command_bar->view($prm_search_term, $paging_link, TRUE, FALSE);

				/**
				 * @description init the table list
				 */
				$view_list_content = $this->M_viewlist->generate
					(
						'db_default'
						, $this->tbl_attr['VIEW']['FIELDS'], $this->tbl_attr['TABLE']['PRIMARY'], $this->tbl_attr['VIEW']['FIELDS_EDIT'], $this->tbl_attr['VIEW']['FIELDS_ORDER']
						, $this->tbl_attr['TABLE']['NAME_ALIAS'], $this->tbl_attr['VIEW']['TABLE']['WHERE']
						, $search_term
						, $this->bz_segment['URL']
						, $this->tbl_attr['VIEW']['TOT_ROW']
						, 'form'
						, $this->access_rights['EDIT']
						, $this->access_rights['DELETE']
					);

				if (is_array($view_list_content))
				{
					$this->table->set_heading($this->tbl_attr['VIEW']['HEADING']);
					$view_list_content = $this->table->generate($view_list_content);
				}
				else
				{
					$view_list_content = '<center class="error_field">'.$this->lang->line('data_view_error').'</center>';
				}
			/**
			 * @section end table view init
			 */


			/**
			 * @section begin generate template variables
			 */

				/**
				 * @description view list
				 */
				$this->web_data['PAGE']['VIEW'] = array
					(
						'FORM' => array
							(
								'OPEN' => form_open($this->tbl_attr['URL']['VIEW'], array('id' => 'frm_header', 'onSubmit' => 'return false'), '')
							)
						, 'COMMANDS' => $view_list_commands
						, 'LISTS' => $view_list_content
					);
			/**
			 * @section end generate template variables
			 */


			/**
			 * @description log the action!
			 */
			$this->M_log->write
				(
					'db_default'
					, trim($prm_page) != ''
						? sprintf
							(
								trim($prm_search_term) != '' ? $this->lang->line('log_view_search') : $this->lang->line('log_view_page')
								, $this->router->class
								, $this->pagination->cur_page
								, $prm_search_term
							)
						: sprintf($this->lang->line('log_view_access'), $this->router->class)
				);



		}
		else
		{
			/**
			 * @section Browser NOT Supported
			 */
				/**
				 * @description browser not supported message error
				 */
				$css_files = array(array('layout' => 'screen'));


				/**
				 * @section begin generate template variables
				 */
					/**
					 * @description css and ajax
					 */
					$this->web_data['PAGE']['CSS_FILES'] = $this->M_template->css_generate($css_files, $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_THEME_ADMIN']);
				/**
				 * @section end generate template variables
				 */

		}



		/**
		 * @description output template variables
		 */
		$this->bz_tlite->assign('WEB_DATA', $this->web_data);


		/**
		 * @section begin output
		 */
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['HEADER'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CSS'], $this->bz_tlite_var['CACHE']['PRIVATE']['VIEW']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['MENU'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_DESCRIPTION'], $this->bz_tlite_var['CACHE']['PRIVATE']['GLOBAL']);

		$this->bz_tlite->cache = FALSE;
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_FORM_COMMAND_BAR']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_FORM']);

		$this->bz_tlite->cache = TRUE;
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_SHORTCUT_BAR'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['FOOTER'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['JAVASCRIPT'], $this->bz_tlite_var['CACHE']['PRIVATE']['VIEW']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['FOOTER_END'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		/**
		 * @section end output
		 */
	}


	/**
	 * @function form()
	 * @description form for data entry
	 */
	public function form($prm_key = '')
	{
		if ($this->web_data['BISKITZ']['HEADER']['BROWSER_SUPPORTED'] == '')
		{
			/**
			 * @description if the user has ADD or EDIT access, show the form!
			 */
			if ($this->access_rights['ADD'] || ($this->access_rights['EDIT'] && trim($prm_key) != ''))
			{
				/**
				 * @description if there isn't any css/ajax cache, build it! else show cache!
				 */
				if ( ! $this->bz_tlite->is_cached($this->bz_tlite_var['NAMES']['CSS'], $this->bz_tlite_var['CACHE']['PRIVATE']['FORM']))
				{
					/**
					 * @section begin page init
					 */
						/**
						 * @description show the menu
						 */
						$menu = $this->M_menu->shows();
						$this->web_data['JAVASCRIPT_MENU'] = $menu['JAVASCRIPT_MENU'];
						$this->web_data['PAGE']['MENU'] = $menu['PAGE']['MENU'];

						/**
						 * @description init the css and the ajax needed
						 */
						$css_files = array
							(
								array('layout' => 'screen')
								, array('tipsy/tipsy' => 'screen')
								, array('validate/validate' => 'screen')
								, array('form_icon_bar' => 'screen')
								, array('nanoscroller/nanoscroller' => ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error') ? 'screen' : NULL)
								, array('shortcut_bar' => ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error') ? 'screen' : NULL)
								, array('ddm/multi-ddm' => 'screen')
							);
						$js_files = array
							(
								'js/plugins/ddm' => array('jquery.multi-ddm.pack')
								, 'js/plugins/nanoscroller' => ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error') ? array('jquery.nanoscroller.min', 'overthrow.min') : NULL
								, 'js/plugins/validate' => array('jquery.validate.pack', 'jquery.metadata')
								, 'js/plugins/tipsy' => array('jquery.tipsy.pack')
								, $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_JS_FUNCTIONS_PATH'] => array('common', 'form', 'error')
								, 'themes/'.$this->web_data['BISKITZ']['SETTINGS']['BISKITZ_THEME_ADMIN'].'/'.$this->web_data['BISKITZ']['SETTINGS']['BISKITZ_JS_PATH'] => array('common')
							);


						/**
						 * @section begin form initialize
						 */
							/**
							 * @description load the models
							 */
							$this->load->model(array('admin/hris/HRIS_M_live_data', 'admin/hris/HRIS_M_command_bar'));


							/**
							 * @description initialize the form elements
							 */
							$form_content_join[] = array
								(
									'<b>'.$this->lang->line('hris_type').'</b>'
									, array
										(
											'data' => form_input
												(
													array
													(
														'type' => 'hidden'
														, 'name' => 'txtinput[0]', 'id' => 'txt0'
														, 'size' => '18', 'maxlength' => '18'
														, 'readOnly' => 'readOnly', 'class' => 'read_only'
													)
												)
												. form_input
													(
														array
														(
															'type' => 'hidden'
															, 'name' => 'txtinput[1]', 'id' => 'txt1'
															, 'size' => '18', 'maxlength' => '18'
															, 'readOnly' => 'readOnly', 'class' => 'read_only'
														)
													)
												. form_input
													(
														array
														(
															'type' => 'hidden'
															, 'name' => 'txtinput[2]', 'id' => 'txt2'
															, 'size' => '15', 'maxlength' => '15'
															, 'readOnly' => 'readOnly', 'class' => 'read_only'
														)
													)
												. '<div id="txt3"></div>'
											, 'colspan' => 3
										)

									, '<b>'.$this->lang->line('hris_attendance_leave_leave').'</b>'
									, array
										(
											'data' => '<div id="txt4"></div>'
											, 'colspan' => 3
										)

									, '<b>'.$this->lang->line('hris_attendance_approval_requester').'</b>'
									, array
										(
											'data' => '<div id="txt5" class="bold"></div>'
											, 'colspan' => 3
										)
								);

							$form_content[] = array
								(
									'<b>'.$this->lang->line('hris_number').'</b>'
									, '<div id="txt6"></div>'

									, '<b>'.$this->lang->line('hris_date').'</b>'
									, '<div id="txt7"></div>'

									, '<b>'.$this->lang->line('hris_from').'</b>'
									, '<div id="txt8"></div>&nbsp;<div id="txt9"></div>'

									, '<b>'.$this->lang->line('hris_to').'</b>'
									, '<div id="txt10"></div>&nbsp;<div id="txt11"></div>'
								);

							$form_content_join[] = array
								(
									array('data' => '<b>'.$this->lang->line('hris_reason').'</b>', 'valign' => 'top')
									, array
										(
											'data' => '<div id="txt12"></div>'
											, 'colspan' => 3
										)

									, array('data' => '<b>'.$this->lang->line('hris_attendance_request_leave_responsibility').'</b>', 'valign' => 'top')
									, array
										(
											'data' => '<div id="txt13"></div>'
											, 'colspan' => 3
										)

									, array('data' => '<b>'.$this->lang->line('hris_attendance_request_leave_contact_information').'</b>', 'valign' => 'top')
									, array
										(
											'data' => '<div id="txt14"></div>'
											, 'colspan' => 3
										)

									, '<b>'.$this->lang->line('hris_attendance_request_sick_hospitalization').'</b>'
									, array
										(
											'data' => '<div id="txt15"></div>'
											, 'colspan' => 3
										)

									, '<b>'.$this->lang->line('hris_letter').' '.$this->lang->line('hris_status').'</b>'
									, array
										(
											'data' => '<div id="txt16"></div>&nbsp;<div id="txt17"></div>'
											, 'colspan' => 3
										)

									, '<b>'.$this->lang->line('hris_disease').'</b>'
									, array
										(
											'data' => '<div id="txt18"></div>'
											, 'colspan' => 3
										)

									, '<b>'.$this->lang->line('hris_status').'</b>'
									, array
										(
											'data' => form_dropdown
												(
													'txtinput[19]'
													, $this->HRIS_M_live_data->combo_fill('db_default', 44, '', 'NORMAL', array('id !=' => 266), FALSE, '', FALSE)
													, ''
													, 'id="txt19"'
														. ' shortcut_f2="'.$this->tbl_attr['URL']['VIEW'].'"'
												)
											, 'colspan' => 3
										)

									, array('data' => '<b>'.$this->lang->line('hris_reason').'</b>', 'valign' => 'top')
									, array
										(
											'data' => form_textarea
												(
													array
													(
														'name' => 'txtinput[20]', 'id' => 'txt20'
														, 'cols' => '60', 'rows' => '3'
														, 'style' => 'width: 100%'
														, 'shortcut_f2' => $this->tbl_attr['URL']['VIEW']
													)
												)


												. form_submit
													(
														array('id' => 'btn_save', 'class' => 'hidden')
														, $this->lang->line('button_save')
													)
											, 'colspan' => 3
										)
								);

							/**
							 * @description create the form and elements
							 */
							$form[] = $this->table->make_columns($form_content_join[0], $this->tbl_attr['FORM']['COLUMN_JOIN']);
							$form[] = $this->table->make_columns($form_content[0], $this->tbl_attr['FORM']['COLUMN']);
							$form[] = $this->table->make_columns($form_content_join[1], $this->tbl_attr['FORM']['COLUMN_JOIN']);

							$form_content = $this->table->generate(array_merge($form[0], $form[1], $form[2]));
						/**
						 * @section end form initialize
						 */
					/**
					 * @section end page init
					 */



					/**
					 * @section begin generate template variables
					 */
						/**
						 * @description css and ajax
						 */
						$this->web_data['PAGE']['CSS_FILES'] = $this->M_template->css_generate($css_files, $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_THEME_ADMIN']);
						$this->web_data['PAGE']['JAVASCRIPT_FILES'] = $this->M_template->js_generate($js_files);

						/**
						 * @description initialize the additional javascript
						 */
						$this->web_data['JAVASCRIPT'] .= '
							<script>
								var js_leave_type_function =
								"
									row_leave = $(\"table tr:eq(6), table tr:eq(7)\");
									row_permit = $(\"table tr:eq(4) .input_clockpick\");
									row_sick = $(\"table tr:eq(8), table tr:eq(9), table tr:eq(10)\");
										row_leave.hide();
										row_permit.hide();
										row_sick.hide();


									if ($(\"#txt2\").val() != \"\")
									{
										switch ($(\"#txt2\").val())
										{
											case \"217\":
												row_leave.show();
												row_permit.hide();
												row_sick.hide();
												break;

											case \"218\":
												row_leave.hide();
												row_permit.show();
												row_sick.hide();
												break;

											case \"261\":
												$(\"#txt4\").text($(\"#txt3\").text());
												row_leave.hide();
												row_permit.hide();
												row_sick.show();
												break;

											default:
												row_leave.hide();
												row_permit.hide();
												row_sick.hide();
												break;
										}

										switch ($(\"#txt19\").val())
										{
											case \"263\":
												$(\"#txt19\").replaceWith(\"<div id=\'txt19\'>\" + $(\"#txt19 :selected\").text() + \"</div>\");
												$(\"#txt20\").replaceWith(\"<div id=\'txt20\'>\" + $(\"#txt20\").val() + \"</div>\");
												break;
										}
									};
								";


								$(function()
								{
									$("#btn_save").click
										(function()
										{
											js_form_action_validate
											(
												"'.$this->bz_segment['SITE_URL'].'", "ajx_", "update", ""
												, "#frm_header", "#process", "#error_message"
												, "validate"
											);
										});
						';

						if ($menu['PAGE']['MENU']['FAVORITE']['LIST'] != 'Error')
						{
							$this->web_data['JAVASCRIPT'] .= '$(".nano").nanoScroller({preventPageScrolling: true});';
						}

						$this->web_data['JAVASCRIPT'] .= '
									$("#txt19").focus().select();
								});
							</script>
						';

						/**
						 * @description menu descriptions
						 */
						$this->web_data['PAGE']['DETAIL'] = $this->M_menu->detail();

						/**
						 * @description icon bar
						 */
						$this->load->model('admin/M_command_bar');
						$this->web_data['PAGE']['ICON_BAR'] = $this->M_command_bar->form('TRUE', FALSE);

						/**
						 * @description form dialogs
						 */
						$this->web_data['PAGE']['FORM'] = array
							(
								'OPEN' => form_open('', array('id' => 'frm_header', 'onSubmit' => 'return false'), '')
								, 'CONTENT' => $form_content
							);

						/**
						 * @description notes
						 */
						$this->web_data['PAGE']['NOTES'] = array
							(
								'USE' => 'TRUE'
								, 'MESSAGE' => array
									(
										'SHORTCUTS' => $this->lang->line('notes_shortcuts')
										, 'ADDITIONAL' => $this->lang->line('notes_additional')
									)
							);
					/**
					 * @section end generate template variables
					 */
				}


				/**
				 * @description get the data for editing via ajax
				 */
				if ($this->access_rights['EDIT'] && trim($prm_key) != '')
				{
					$this->web_data['JAVASCRIPT_EXTEND'] = '
						<script>
							$(function()
							{
								js_form_action
								(
									"'.$this->bz_segment['SITE_URL'].'", "ajx_data_", "put", "'.$prm_key.'"
									, "#frm_header", "#process", "#error_message"
									, 0
									, js_leave_type_function
								);
							});
						</script>
					';
				}


				/**
				 * @description log the action!
				 */
				$this->M_log->write('db_default', sprintf($this->lang->line('log_form_access'), $this->router->class, 'form'));
			}
			else
			{
				/**
				 * @description doesn't have ADD or EDIT access? redirect to desktop
				 */
				redirect('admin/desktop');
			}



		}
		else
		{
			/**
			 * @section Browser NOT Supported
			 */
				/**
				 * @description browser not supported message error
				 */
				$css_files = array(array('layout' => 'screen'));


				/**
				 * @section begin generate template variables
				 */
					/**
					 * @description css and ajax
					 */
					$this->web_data['PAGE']['CSS_FILES'] = $this->M_template->css_generate($css_files, $this->web_data['BISKITZ']['SETTINGS']['BISKITZ_THEME_ADMIN']);
				/**
				 * @section end generate template variables
				 */
		}



		/**
		 * @description output template variables
		 */
		$this->bz_tlite->assign('WEB_DATA', $this->web_data);


		/**
		 * @section begin output
		 */
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['HEADER'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CSS'], $this->bz_tlite_var['CACHE']['PRIVATE']['FORM']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['MENU'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_DESCRIPTION'], $this->bz_tlite_var['CACHE']['PRIVATE']['GLOBAL']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_FORM_ICON_BAR'], $this->bz_tlite_var['CACHE']['PRIVATE']['FORM']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_FORM'], $this->bz_tlite_var['CACHE']['PRIVATE']['FORM']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['CONTENT_SHORTCUT_BAR'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['FOOTER'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['JAVASCRIPT'], $this->bz_tlite_var['CACHE']['PRIVATE']['FORM']);

		$this->bz_tlite->cache = FALSE;
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['JAVASCRIPT_EXTEND']);

		$this->bz_tlite->cache = TRUE;
		$this->bz_tlite->display($this->bz_tlite_var['NAMES']['FOOTER_END'], $this->bz_tlite_var['CACHE']['PUBLIC']);
		/**
		 * @section end output
		 */
	}



/**
 * @section AJAX Action Section
 */

	/**
	 * @function ajx_update()
	 * @description update the data
	 */
	public function ajx_update()
	{
		if ($this->input->is_ajax_request() && $this->access_rights['EDIT'])
		{
			if (trim($this->input->post('txtinput[19]')) != '')
			{
				/**
				 * @description load the models
				 */
				$this->load->model('admin/M_live_data');


				$data = array
					(
						'request_approval_status__id' => $this->input->post('txtinput[19]')
						, 'date' => date('Y-m-d H:i:s')
						, 'reason' => $this->input->post('txtinput[20]')
						, 'is_approver' => 'Yes'
					);

				$return_value = $this->M_live_data->update
					(
						'db_default'
						, 'hris_attendance_request_approved'
						, array('request__id' => $this->input->post('txtinput[0]'), 'request_approval_detail__id' => trim($this->input->post('txtinput[1]')) == '' ? NULL : $this->input->post('txtinput[1]'), 'data__id' => $this->session->userdata('session_user_id'))
						, $data
						, 'form', 'js_action_success', $this->tbl_attr['URL']['VIEW']
						, FALSE
					);

				/**
				 * @description call the attendance process procedure
				 */
				$this->db_default->query
					(
						'call `sp_hris_attendance_request_approved_process`(?, ?, ?, ?)'
						, array($this->input->post('txtinput[0]'), $this->input->post('txtinput[1]'), $this->session->userdata('session_user_id'), $this->input->post('txtinput[19]'))
					);

			}
			else
			{
				$return_value = array
					(
						'js_action_message'
						, array($this->lang->line('hris_msg_request_inbox_already_approved'), 'error')
					);
			}


			$return_value = json_encode($return_value);
			echo $return_value;
		}
	}


	/**
	 * @function ajx_data_put()
	 * @description get the data from database and put them to the form via ajax!
	 */
	public function ajx_data_put($prm_key = '')
	{
		if ($this->input->is_ajax_request() && $this->access_rights['EDIT'] && trim($prm_key) != '')
		{
			/**
			 * @description load the models
			 */
			$this->load->model('admin/M_live_data');


			$return_value = $this->M_live_data->put
				(
					'db_default'
					, $this->tbl_attr['TABLE']['NAME_ALIAS']
					, array('id' => $prm_key)
					, $this->tbl_attr['FORM']['FIELDS']
				);


			$return_value = json_encode($return_value);
			echo $return_value;
		}
	}



}

/** End of file inbox.php */
/** Location: ./biskitz_mpc/biskitz/controllers/admin/hris/attendance/management/request/inbox.php */
